#!/usr/bin/env ruby

LKP_SRC = ENV['LKP_SRC'] || File.dirname(File.dirname(File.dirname(File.realpath($PROGRAM_NAME))))

require "#{LKP_SRC}/lib/string"
require "#{LKP_SRC}/lib/tests/stats"

stats = LKP::Stats.new

while (line = $stdin.gets)
  line = line.resolve_invalid_bytes

  case line
  when /make: .* \[Makefile:.*\] Error/
    # 2023-04-07 09:36:42 ./build.sh
    # Building TNC testing tools
    # hostap_imc.c:9:10: fatal error: includes.h: No such file or directory
    #     9 | #include "includes.h"
    #       |          ^~~~~~~~~~~~
    # compilation terminated.
    # make: *** [Makefile:19: libhostap_imc.so] Error 1
    stats.add 'make', 'fail' unless stats.key? 'make'
  when /\.\/run-tests\.py/
    # 2023-04-07 09:44:01 ./build.sh
    # Building TNC testing tools
    # Building wlantest
    # Building hs20-osu-client
    # Building hostapd
    # Building wpa_supplicant
    # 2023-04-07 09:45:30 ./start.sh
    # 2023-04-07 09:45:32 ./run-tests.py ap_ft_eap_over_ds
    stats.add 'make', 'pass' unless stats.key? 'make'
  when /^(PASS|FAIL|SKIP)\s+(.*)\s+/
    # The output is as below:
    # PASS ap_hs20_network_preference 0.562706 2017-04-25 14:22:28.575753
    # FAIL ap_hs20_proxyarp_enable_dgaf 0.457441 2017-04-25 14:22:34.671422
    # SKIP ap_ht_op_class_115 5.227749 2017-04-25 14:24:59.481133
    stats.add $2.split[0], $1
  end
end

stats.dump
